Saltar al contenido principal

Unity SDK

Añade AR Clip VPS a un proyecto de Unity. El SDK encuentra la posición del usuario en tus mapas VPS y coloca el contenido en el lugar correcto, en dispositivos con ARKit (iOS) y ARCore (Android).

Antes de empezar​

  • Unity 2022.3 LTS o posterior
  • Un dispositivo de prueba compatible con ARKit o ARCore
  • Git LFS, si clonas el proyecto de ejemplo (tiene recursos grandes)

Instalación​

Elige una de estas dos formas.

Clonar el proyecto de ejemplo​

git clone https://github.com/WebAR-Studio/was-vps-unity.git

Abre el proyecto en Unity 2022.3 o posterior. Las escenas de Assets/Scenes muestran configuraciones que funcionan.

Añadirlo con el Package Manager​

  1. Abre Window → Package Manager.
  2. Haz clic en + → Add package from Git URL….
  3. Pega https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets.

Unity descarga el SDK en Packages/was-vps-unity.

Preparar la escena​

  1. Crea o abre una escena preparada para AR Foundation. Necesita un AR Session y un AR Session Origin.
  2. Añade VPSLocalisationService a un GameObject vacío. Este componente se encarga de la localización.
  3. En el Inspector, asigna:
    • AR Session
    • AR Session Origin
    • la cámara AR y los enlaces de UI, si los necesitas (mira las escenas de ejemplo)
  4. Escribe tu API Key de VPS y al menos un Location ID.
  5. Opcional: mientras depuras, activa Save Images Locally o Save Logs In File.
¿Necesitas una clave de API?

Consíguela en arclip.design o escribe a support@arclip.design.

Iniciar la localización​

Controla la localización desde tu propio script. Añade este componente y asigna la referencia a VPSLocalisationService en el Inspector.

using UnityEngine;
using WASVPS;

public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;

private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;

var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);

settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;

vpsService.StartVPS(settings);
}

private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}

private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}

Ajustes del Inspector​

PropiedadQué haceValor por defecto
Start On AwakeInicia la localización al cargar la escenafalse
Force Mock In EditorUsa siempre el proveedor simulado cuando ejecutas en el Editortrue
Send GPSAñade los datos GPS del dispositivo a cada petición VPSfalse
Fails Count To ResetCuántos fallos seguidos reinician la sesión5
Save Images LocallyGuarda los fotogramas capturados para depurarfalse

Probar y depurar​

  • Activa Force Mock In Editor y usa las texturas simuladas incluidas para probar sin dispositivo.
  • Llama a VPSLogger.SetLogLevel(LogLevel.VERBOSE) para ver en la consola las peticiones HTTP, las respuestas y los errores.
  • Si la localización no funciona nunca, comprueba que tu clave de API es válida y que cada ID de ubicación corresponde a un mapa VPS que tienes.

Ejemplos​

  • En el proyecto de ejemplo, mira Assets/Scenes/TestScene.unity y Assets/Scripts/ExampleVPS.cs: son ejemplos que funcionan.
  • Usa las poses de VPS en tu propia lógica: crea anclas, alinea contenido 3D o actualiza la UI.

Siguiente: Plataformas de Unity — compila para teléfonos, visores y gafas.